AWS Step FunctionsステートマシンからAmazon SESを使用してメールを送信してみた
こんにちは、CX事業本部 IoT事業部の若槻です。
今回は、AWS Step FunctionsステートマシンからAmazon SESを使用してメールを送信してみました。
やってみた
構成
下記のような構成を作成してみます。
前提
Amazon SESのVerified identitiesでメール送信元(From)としたいメールアドレスまたはドメインが承認済みである前提とします。
まだの場合は下記などを参考に承認を行ってください。
ステートマシンの作成
Step Functions Workflow Studioでステートマシンを作成します。
Step Functionsのマネジメントコンソールを開き、[ステートマシンの作成]をクリックします。
[次へ]をクリックします。
するとビルダー画面が開きます。アクション一覧をses send mail
で検索します。するとAmazon SESのメール送信APIを実行できるアクションが見つかります。今回はこのうちAmazon SES V1 Sendmail
を使ってみます。編集領域にドラッグアンドドロップします。
ちなみにSES APIにはV1とV2があるのですが、出来ることは基本的には変わらないようです。
- Welcome - Amazon Simple Email Service API Reference
- Welcome - Amazon Simple Email Service API v2 Reference
作成に戻ります。下記がAmazon SES V1 Sendmail
アクションをドロップした状態です。このアクションはAPIパラメータを直接編集するタイプのようです。
APIパラメータを次のように指定します。基本的にはAPIドキュメントの通りに指定すればOKです。[次へ]をクリック。
{ "Destination": { "ToAddresses": [ "<宛先メールアドレス>" ] }, "Message": { "Body": { "Text": { "Data": "てすと本文" } }, "Subject": { "Data": "てすと件名" } }, "Source": "<送信元メールアドレス>" }
ステートマシン定義を確認したら[次へ]をクリック。
設定は既定のままとして、[ステートマシンの作成]をクリック。
ステートマシンを作成できました。不足している権限を追加する必要があります。[IAM でロールを編集]をクリック。
作成済みのIAMロールがコンソールで開きます。AWS管理ポリシーのAmazonSESFullAccess
をアタッチします。(実際の利用では、権限権限が過多なので適宜絞ってください)
ステートマシンのコンソールに戻り、[実行の開始]をクリック。
今回は入力の指定は省略して良いです。[実行の開始]をクリック。
するとステートマシンの実行が開始され、体感2,3秒で完了しました。ステータスは成功となっていますね!
すると宛先のメールボックにメールがちゃんと届きました!
おわりに
AWS Step FunctionsステートマシンからAmazon SESを使用してメールを送信してみました。
簡単なメール送信処理であればLamabda関数を作らなくてもこれで事足りそうです。
またSendEmailアクションには「コールバックを待つ」オプションなるものがあるようなので、これは次回以降試してみたいと思います。
参考
以上